#pragma once
#include "Runtime/BattleFirePrefix.h"
namespace Alice
{
    enum EDepthCompareFunc
    {
        EDepthCompareFuncLEqual,
        EDepthCompareFuncEqual
    };
    class DepthState
    {
    public:
        bool mbIsEnabledDepthTest;
        bool mbIsEnabledDepthWrite;
        EDepthCompareFunc mEDepthCompareFunc;
        DepthState(bool inEnableDepthTest,bool inEnableDepthWrite,EDepthCompareFunc inDepthCompareFunc){
            mbIsEnabledDepthTest=inEnableDepthTest;
            mbIsEnabledDepthWrite=inEnableDepthWrite;
            mEDepthCompareFunc=inDepthCompareFunc;
        }
        bool operator==(const DepthState&inDepthState)const{
            return mbIsEnabledDepthTest==inDepthState.mbIsEnabledDepthTest
            &&mbIsEnabledDepthWrite==inDepthState.mbIsEnabledDepthWrite
            &&mEDepthCompareFunc==inDepthState.mEDepthCompareFunc;
        }
        bool operator!=(const DepthState&inDepthState)const{
            return mbIsEnabledDepthTest!=inDepthState.mbIsEnabledDepthTest
            ||mbIsEnabledDepthWrite!=inDepthState.mbIsEnabledDepthWrite
            ||mEDepthCompareFunc!=inDepthState.mEDepthCompareFunc;
        }
    };
    class StencilState{
    public:
        
    };
}
#ifdef ALICE_OGL
#include "OpenGL/BufferOGL.h"
#endif